package com.ruifu.proj.service;

import com.fhzncloud.cloud.common.security.service.CloudUser;
import com.ruifu.proj.dto.ptobject.PmPtCopyInsertObjectDTO;
import com.ruifu.proj.dto.ptobject.PmPtInsertObjectDTO;
import com.ruifu.proj.vo.pmPtObject.PmPtObjectDocVerVO;
import com.ruifu.proj.vo.pmPtObject.PmPtObjectResultVO;

import java.util.List;


public interface PmPtObjectService {

    void insert(PmPtInsertObjectDTO pmPtInsertObjectDTO, CloudUser cloudUser);

    void delete(Long[] poIds, CloudUser cloudUser);

    void insertCopyByPtCode(PmPtCopyInsertObjectDTO pmPtCopyInsertObjectDTO, CloudUser cloudUser);

    PmPtObjectResultVO findByPoPtIdAndPoIOType(Long ptId, String poIOType, CloudUser cloudUser);

    /**
     * 修改I/O文档是否必须
     *
     * @param poId   I/O记录id
     * @param isMust 是否必须
     */
    void updatePoIsMustByPoId(Long poId, Boolean isMust, CloudUser cloudUser);

    /**
     * 添加输入(输出)文档类型和输入(输出)文档
     *
     * @param pmPtInsertObjectDTOList
     * @return
     */
    void insertPL(List<PmPtInsertObjectDTO> pmPtInsertObjectDTOList, CloudUser cloudUser);

    List<PmPtObjectDocVerVO> findObjectByPtId(Long ptId, String poIOType, Long poObjTypeId, CloudUser cloudUser);
}
